﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados.Interfaces;
using Dados.ValueObjects;
using Dados.INFTURDataSetTableAdapters;

namespace Dados.ClassesSQLServer
{
    public class AluguelSQLServer : IAluguelVeiculo
    {
        T_ALUGUELTableAdapter aluguelTA = new T_ALUGUELTableAdapter();

        #region IAluguel Members

        public int Inserir(AluguelVO aVO)
        {
            try
            {
                return aluguelTA.Insert(aVO.Cliente, aVO.Locadora, aVO.DataInicio, aVO.DataFim, aVO.Usuario);
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
        }

        public int Atualizar(AluguelVO aVO)
        {
            try
            {
                return aluguelTA.Update(aVO.Cliente, aVO.Locadora, aVO.DataInicio, aVO.DataFim, aVO.Usuario, aVO.Id);
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
        }
        public int Remover(int ID)
        {
            try
            {
                return aluguelTA.Delete(ID);
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
        }
        public AluguelVO Consultar(int ID)
        {

            try
            {

                AluguelVO aVO = null;
                INFTURDataSet.T_ALUGUELDataTable dtAluguel = aluguelTA.GetAluguelPorId(ID);

                aVO = new AluguelVO();
                aVO.Id = ID;
                aVO.Cliente = dtAluguel[0].tx_cliente;
                aVO.Locadora = dtAluguel[0].nr_locadora;
                aVO.DataInicio = dtAluguel[0].dt_datainicio;
                aVO.DataFim = dtAluguel[0].dt_datafim;
                aVO.Usuario = dtAluguel[0].tx_usuario;

                return aVO;
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
        }
        public List<AluguelVO> ConsultaTodos()
        {
            try
            {
                List<AluguelVO> listaAluguelVO = new List<AluguelVO>();
                INFTURDataSet.T_ALUGUELDataTable dtAluguel = aluguelTA.GetData();

                foreach (INFTURDataSet.T_ALUGUELRow aRow in dtAluguel)
                {
                    AluguelVO aVO = new AluguelVO();
                    aVO.Id = aRow.nr_id;
                    aVO.Cliente = aRow.tx_cliente;
                    aVO.Locadora = aRow.nr_locadora;
                    aVO.DataInicio = aRow.dt_datainicio;
                    aVO.DataFim = aRow.dt_datafim;
                    aVO.Usuario = aRow.tx_usuario;

                    listaAluguelVO.Add(aVO);
                }

                return listaAluguelVO;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        #endregion
    }
}
